Many vehicles comprise vehicle computing devices that control various aspects of a vehicle's operation. For example, a vehicle computing device of a vehicle may monitor engine temperature, control engine operation, implement cruise control settings, etc. The vehicle computing device may communicate over a vehicle controller area network (CAN) bus with other vehicle components. The vehicle computing device and the vehicle components may communicate using proprietary communication protocols and data formats. The vehicle may also comprise a vehicle navigation unit through which a user can adjust a radio, view navigational information, etc. The vehicle navigation unit may come preprogrammed from a vehicle manufacturer, and may use the same proprietary communication protocols and data formats of the vehicle computing device and vehicle components. Unfortunately, developing applications, such as a third party application, capable of communicating with the vehicle computing device, vehicle components, and/or the vehicle navigation unit may be difficult because of the proprietary nature of such components and computing devices.
Also, an application developer may be unable to adequately test how an application will function during operation of the vehicle. For example, the application developer may create the application within an application development environment hosted on a computing device, such as a laptop, desktop computer, or server. The computing device may not have access to a vehicle, and thus the application developer may be unable to test the application (e.g., the application may not have access to real-time driving data, such as current speed of a vehicle being driven). In an example, the application developer may be unable to see how a user interface of the application will visually appear through a vehicle display such as through the vehicle navigation unit. In another example, the application developer may be unable to obtain vehicle information, such as a current vehicle speed and other telemetry data, due to the computing device not having access to the vehicle, and thus any functionality associated with real-time vehicle operation data cannot be tested (e.g., a user interface element that warns a user of exceeding a speed limit cannot be tested without vehicle speed input).